// Beidseitig federn - Version D1-1.3

// Dieses Skript verbindet die beiden Ebenen in den Einblendmenüs durch eine Feder. Die Ebenen
// behalten die Geschwindigkeit, die sie am Anfang des Arbeitsbereiches hatten, bei.

//      EBENE                                   EIGENSCHAFT                        KANAL
//      -----                                   -------------                       ------
// 1: Mit #2 verbundene Ebene       Wird nicht berücksichtigt       Wird nicht berücksichtigt
// 2: Mit #1 verbundene Ebene       Wird nicht berücksichtigt       Wird nicht berücksichtigt

if (time() == start_time) {
	rest_length = 50;					// Länge der Feder im entspannten Zustand in Pixeln
	damp = 0.95;								// Dämpfung (0 = unendlich groß, 1 = unendlich klein)

	p1 = value(pop_layer(1), position);
	p2 = value(pop_layer(2), position);

	last_p1 = tmap(time() - step_time, value(pop_layer(1), position));
	last_p2 = tmap(time() - step_time, value(pop_layer(2), position)); 

	v1 = (p1 - last_p1);
	v2 = (p2 - last_p2);
} else {
	delta = p2 - p1;
	n_delta = normalize(delta);

	a = n_delta * (length(delta) - rest_length) * step_time;

	v2 = (v2 - a) * damp;
	v1 = (v1 + a) * damp;

	p1 = p1 + v1;
	p2 = p2 + v2;

}
	value(pop_layer(1), position) = p1;
	value(pop_layer(2), position) = p2;